package com.swanclouds.model.identity;

import com.swanclouds.common.Buildable;
import com.swanclouds.model.ModelEntity;
import com.swanclouds.model.identity.builder.AuthStoreBuilder;

/**
 * An entity which holds enough information in store to re-authenticate at any given time during a session.  This is a generic mapping which provides the common
 * information needed for authentication.  Version dependent attributes can be found via the {} call returning the real typed object
 *
 * @author Jeremy Unruh
 */
public interface AuthStore extends ModelEntity, Buildable<AuthStoreBuilder> {

    /**
     * @return the username used to authenticate
     */
    String getUsername();

    /**
     * @return the password used to authenticate
     */
    String getPassword();

    /**
     * @return the oem used to authenticate
     */
    String getDomain();

}
